<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="cmd.css" rel="stylesheet" type="text/css">
<title>外部命令 wenv</title>
</head>

<body>
<p><a href="./GRUB4DOS7外部命令索引.htm">外部命令索引</a> &nbsp;&nbsp;&nbsp;&nbsp;<a href="./GRUB4DOS7-1外部命令chkpci.htm">chkpci</a> &nbsp;&nbsp;&nbsp;&nbsp;<a href="./GRUB4DOS7-2外部命令diskid.htm">diskid</a> &nbsp;&nbsp;&nbsp;&nbsp;<a href="./GRUB4DOS7-3外部命令fat.htm">fat</a> &nbsp;&nbsp;&nbsp;&nbsp;<a href="./GRUB4DOS7-4外部命令inifile.htm">inifile</a> &nbsp;&nbsp;&nbsp;&nbsp;<a href="./GRUB4DOS7-5外部命令menuset.htm">menuset</a> &nbsp;&nbsp;&nbsp;&nbsp;<a href="./GRUB4DOS7-6外部命令unifont.htm">unifont</a> &nbsp;&nbsp;&nbsp;&nbsp;wenv</p>
<p> WENV 使用说明 (readme)<br>
  <br>
（由zhaohj起草, chenall 整理于 2010-10-12, tuxw 修改于 2010-10-16）<br>
最近修改： 2010-11-24</p>
<p class="style1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WENV 是一个基于GRUB4DOS的程序，可以用它来增强GRUB4DOS的脚本能力,来现一些不可思议的功能。WENV 最初只支持简单变量和运行GRUB4DOS命令。到了现在已经支持各式各样的处理。可以把让它当成是GRUB4DOS的增强形SHELL，方便各位grub4dos fans编写高效强大的菜单。在这里要感谢无论启动论坛上众多朋友的支持，如果没有你们，WENV还只是一个小玩具。<br>
<a href="http://bbs.wuyou.com/viewthread.php?tid=182254" target="_blank">http://bbs.wuyou.com/viewthread.php?tid=182254</a></p>
<h3>WENV命令及子命令、参数不区分大小写，变量区分大小写</h3>
<h2>WENV目前支持的命令列表(wenv-commands):</h2>
<blockquote>
  <p> <span class="Options">SET</span> 设置/修改/新增/删除/显示变量</p>
  <p><span class="Options">GET</span> 显示变量/判断变量是否存在</p>
  <p><span class="Options">FOR</span> 类似于CMD的FOR命令，具体见后面介绍</p>
  <p><span class="Options">CALL</span> 执行一个GRUB4DOS内部命令</p>
  <p><span class="Options">CALC</span> 简易计算器（没有优先级从左往右计算，不支持括号）</p>
  <p><span class="Options">ECHO</span> 在屏幕上显示信息</p>
  <p><span class="Options">READ</span> 分析一个文件并执行里面的命令（必须是WENV支持的命令），并且支持参数。</p>
  <p><span class="Options">CHECK</span> 判断/检测相当于if命令，后面可以跟WENV-COMMAND（当判断的返回值为真时执行）</p>
  <p><span class="Options">RESET</span> 清除变量/重置</p>
</blockquote>
<h2>内置变量:</h2>
<blockquote>
  <p><span class="Options">?_WENV</span> 保存上一次wenv call运行的返回值</p>
  <p><span class="Options">?_GET</span> 保存上一次wenv get variable变量的长度</p>
  <p><span class="Options">@DATE</span> 当前日期YYYY-MM-DD</p>
  <p><span class="Options">@TIME</span> 当前时间hh:mm:ss</p>
  <p><span class="Options">@RANDOM</span> 产生一个随机数字</p>
</blockquote>
<h3>一：SET 命令 （设置/修改/新增/删除变量）</h3>
<h4>  1.WENV SET [variable=[string]]</h4>
<p> &nbsp;&nbsp;<span class="Options">variable</span> 指定环境变量名,区分大小写 （目前最多允许用户定义60个变量）</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不超过8个字符.可以使用字母(a-z/A-Z)、数字(0-9)、下划线(_)。不可以使用数字开头。</p>
<p>&nbsp;&nbsp;<span class="Options">string</span> 指定要指派给变量的一系列字符串。不能超过512字节。<br>
  <br>
  &nbsp;&nbsp;无等号时显示指定名称的所有变量的值。</p>
<blockquote>
  <p><span class="cmd">SET P</span><br>
    <br>
    会显示所有以字母 P 打头的变量</p>
</blockquote>
<h4>2.等号后面可以跟&quot;$U,&quot;或&quot;$L,&quot;</h4>
<p>&nbsp;&nbsp;<span class="Options">$U</span>，全转变为大写；</p>
<p>&nbsp;&nbsp;<span class="Options">$L</span>，全转变为小写；</p>
<p>&nbsp;&nbsp;例子: </p>
<blockquote>
  <p><span class="cmd">WENV SET a=$U,aBcDeF</span></p>
  <p>得到 a=ABCDEF</p>
</blockquote>
<h4>3.关键字 $input，来获取从键盘输入的字符。</h4>
<p>&nbsp;&nbsp;例子：获取从键盘输入的字符串，并转换为大写赋值给srspath</p>
<blockquote>
  <p><span class="cmd">WENV set srspath=$u,$input,please input SRS driver path:</span></p>
</blockquote>
<h4>4.一些组合例子:</h4>
<blockquote>
  <p><span class="cmd">WENV SET variable=$U,string</span></p>
  <p><span class="cmd">WENV SET variable=$U,$input,Prompt</span></p>
</blockquote>
<h3>二、 GET 命令 （显示变量/判断变是是否存在）</h3>
<p>GET 命令可以显示指定的变量,并设置<span class="Options">?_GET</span>为该变量的字符串长度。</p>
<blockquote>
  <p><span class="cmd">WENV set a=abcd1234</span></p>
  <p><span class="cmd">WENV get a ]]&amp; set b=${?_GET}</span> ;<span class="Options">注意</span>：?_GET大写</p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;返回变量a的值的字符串长度给变量b.<br>
  <br>
  注: 如果变量不存在会返回一个失败的值0，可以用于判断变量是否存在</p>
<p>&nbsp;&nbsp;如: 当变量abc不存在时显示字符串&quot;Variable abc not defined&quot;</p>
<blockquote>
  <p><span class="cmd">wenv get abc || echo Variable abc not defined</span></p>
</blockquote>
<h3>三、FOR 命令（类拟于CMD的 for ）</h3>
<p>比较强大的一个命令，可以分析字符串，文本文件。</p>
<p>语法:</p>
<blockquote>
  <p>FOR <span class="Options">/L</span> <span class="Options">%variable</span> IN <span class="Options">(start,step,end)</span> DO wenv-command</p>
</blockquote>
<p>&nbsp;&nbsp;该集表示以增量形式从开始到结束的一个数字序列。</p>
<p>&nbsp;&nbsp;因此，(1,1,5)将产生序列1 2 3 4 5，(5,-1,1)将产生序列(5 4 3 2 1)</p>
<blockquote>
  <p>FOR <span class="Options">/F</span> <span class="Options">[&quot;options&quot;]</span> %variable IN <span class="Options">( file )</span> DO wenv-command</p>
  <p>FOR <span class="Options">/F [&quot;options&quot;]</span> %variable IN <span class="Options">(&quot;string&quot;)</span> DO wenv-command</p>
</blockquote>
<p>&nbsp;&nbsp;如果有 usebackq 选项:</p>
<blockquote>
  <p>FOR /F [&quot;options&quot;] %variable IN (`string`) DO wenv-command</p>
  <p><span class="Options">options</span></p>
  <p><span class="Options">eol=c</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#指一个行注释字符的结尾(就一个)</p>
  <p><span class="Options">delims=xxx</span>&nbsp;&nbsp;&nbsp;      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#指分隔符集。这个替换了空格和跳格键的默认分隔符集。</p>
  <p><span class="Options">tokens=x,y,m-n</span> &nbsp;&nbsp;&nbsp;&nbsp; #指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。</p>
  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m-n格式为一个范围。通过 nth 符号指定 mth。</p>
  <p><span class="Options">usebackq</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#反向引号<br>
    <br>
    几个例子 </p>
</blockquote>
<p>&nbsp;&nbsp;1、分析myfile.txt的每一行，使用&quot;;&quot;作为注释符,使用&quot;,&quot;分隔字符串，显示每行的第二和第三个字符串</p>
<blockquote>
  <p><span class="cmd">FOR /F &quot;eol=; tokens=2,3 delims=,&quot; %i in ( myfile.txt ) do echo %i %j</span></p>
</blockquote>
<p>&nbsp;&nbsp;2、显示从1-10的数字</p>
<blockquote>
  <p><span class="cmd">FOR /L %i in (1,1,10) do echo %i</span></p>
</blockquote>
<p>&nbsp;&nbsp;3、以下语句会显示 1 2 3 6</p>
<blockquote>
  <p><span class="cmd">FOR /f &quot;tokens=1-3,6&quot; %i in (&quot;1 2 3 4 5 6 7 8 9 0&quot;) do echo %i %j %k %l</span></p>
</blockquote>
<p>可以参考CMD的for命令帮助说明.</p>
<h3>四、CALL 命令</h3>
<p>语法：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WENV call grub4dos-builtincmd</p>
<p>&nbsp;&nbsp;CALL 命令用于执行GRUB4DOS内部命令,使得可以动态执行一些GRUB4DOS的命令.</p>
<p>&nbsp;&nbsp;可以使用变量或*ADDR$代替命令的任意部份。</p>
<p>例子：</p>
<p>&nbsp;&nbsp;1、</p>
<blockquote>
  <p><span class="cmd">wenv set a=(hd0)</span><br>
    <span class="cmd">wenv call map ${a} (hd1)</span></p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;扩展了变量${a} 相当于执行map (hd0) (hd1)</p>
<p>&nbsp;&nbsp;2、</p>
<blockquote>
  <p><span class="cmd">wenv call write (fd0)/aa.txt *0x60000$</span></p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;这个会扩展*0x60000$,把从内存地址0X60000处的字符复制到命令行<br>
  <br>
  &nbsp;&nbsp;&nbsp;&nbsp;如果内存地址0x60000处有字符串abcdef<br>
  <br>
  &nbsp;&nbsp;&nbsp;&nbsp;那扩展后就是write (fd0)/aa.txt abcdef</p>
<p> &nbsp;&nbsp;&nbsp;&nbsp;甚至还可以直接 wenv call ${mycmd}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;会扩展变量mycmd，如果它是一个GRUB4DOS内部命令，则会得到执行，否则返回失败值。</p>
<p>注意：不能用CALL运行无返回值的 Grub4DOS 命令。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;比如 WENV call configfile ... 可能会出错。</p>
<h3>五、calc 命令 </h3>
<p>用于grub4dos的简单计算，从左到右计算，不支持优先级</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WENV calc [[VAR | [*]INTEGER]=] [*]INTEGER OPERATOR [[*] INTEGER]<br>
  <br>
calc 命令可以直接操作内存中的数据，请使用*ADDR的形式。</p>
<blockquote>
  <p><span class="Options">=</span>前面如果是一个非数字字符串,则会把计算结果赋值给变量；</p>
  <p><span class="Options">OPERATOR</span>:包含+、-、*、/、&amp;(与)、|(或)、^(位异或)、&gt;&gt;、&lt;&lt;</p>
  <p><span class="Options">*INTEGER</span>表示内存地址的值；</p>
</blockquote>
<p>&nbsp;&nbsp;如：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV calc a=*60000+1        表示把内存地址0x60000的值再加1赋值给变量a</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV calc a=1&lt;&lt;10           左移10位，即2的10次方，等于1024</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV calc a=b++             a=b,b=b+1</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV calc a=++b             b=b+1,a=b</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV calc a=b--             a=b,b=b-1</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV calc a=--b             b=b-1,a=b</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV calc a++               变量a的值加1;（如果不存在，会自动增加一个变量a）</p>
<p>	注：calc可以对变量进行计算，但一般情况下请使用如下的例子获得更快的运算速度。</p>
<p>&nbsp;&nbsp;1、</p>
<blockquote>
  <p><span class="cmd">wenv calc a=${b}+${c}</span></p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;以上的例子不会对变量b和c进行修改。</p>
<p>&nbsp;&nbsp;2、</p>
<blockquote>
  <p><span class="cmd">wenv calc a=${b}+c++</span></p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;这个例子会修改变量c的值</p>
<h3>六、echo 命令</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV ECHO strings</p>
<p>&nbsp;&nbsp;默认不使用转义,输入的是什么就输出什么,并且未尾自动加回车符.</p>
<p>1).<span class="Options">-e</span> 允许转义输出.</p>
<p>&nbsp;&nbsp;比如\n是一个回车。</p>
<p>2).<span class="Options">-n</span> 输出不自动加回车符. </p>
<h3>七、READ 命令</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;WENV READ wenv-bat-file parameters<br>
  <br>
&nbsp;&nbsp;用于执行一个WENV的批处理文件，该批处理文件里面必须是 wenv-commands。</p>
<p>&nbsp;&nbsp;1、忽略以冒号&quot;:&quot;开头的行。</p>
<p>&nbsp;&nbsp;2、在批处理中可以使用参数$0-$9</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其中: $0 代表批处理文件自身。$1-$9 分别代表第一个参数到第九个参数。<br>
  <br>
  &nbsp;&nbsp;3、参数之间使用空格分隔。<br>
  <br>
  一个例子：</p>
<p>&nbsp;&nbsp;wenv.bat文件内容如下</p>
<blockquote>
  <p class="bat">echo $0<br>
    echo $1<br>
    echo $2</p>
</blockquote>
<p>&nbsp;&nbsp;使用命令<span class="cmd">WENV READ /wenv.bat abcd 12345</span></p>
<p>&nbsp;&nbsp;将会在屏幕上显示如下内容</p>
<blockquote>
  <p><span class="cmd">/wenv.bat</span><br>
    <span class="cmd">abcd</span><br>
  <span class="cmd">12345</span></p>
</blockquote>
<h3>八：CHECK 命令 （判断命令，相当于IF命令）</h3>
<blockquote>
  <p>WENV check string1 compare-op string2 wenv-command</p>
  <p><span class="Options">比较符号</span>可以使用其中一个: ==、&lt;&gt;、&gt;=、&lt;=</p>
  <p><span class="Options">==</span> &ndash; equal（等于）</p>
  <p><span class="Options">&lt;&gt;</span> &ndash; not equal（不等于）</p>
  <p><span class="Options">&lt;=</span> &ndash; less than or equal（小于或等于）</p>
  <p><span class="Options">&gt;=</span> &ndash; greater than or equal（大于或等于）</p>
</blockquote>
<p> 注: 注意比较时,后面的字符串忽略小写对比.</p>
<p>如:</p>
<p>&nbsp;&nbsp;abc==ABC 值为真</p>
<p>&nbsp;&nbsp;aBc==abc 值为假</p>
<p>&nbsp;&nbsp;abc==aBc 值为真.</p>
<p>只要前面部分某个字符是大写，后面部分对应的一定要大写才能匹配</p>
<h3>九、RESET   命令 （清除变量）</h3>
<blockquote>
  <p><span class="cmd">WENV RESET</span> 清除所有变量</p>
  <p><span class="cmd">WENV RESET P</span> 清除变量P</p>
  <p><span class="cmd">WENV RESET P*</span> 清除所有P开头的变量</p>
</blockquote>
<h3>十、其它说明:</h3>
<h4> 1、要使用命令序列，可以把要执行的命令放在()之内，多个命令之间使用&quot; ; &quot;(前后各有一个空格)分隔。</h4>
<p> &nbsp;&nbsp;格式: </p>
<blockquote>
  <p>WENV (wenv-command1 <span class="Options">;</span> wenv-command2 <span class="Options">;</span> wenv-command3)</p>
</blockquote>
<p> &nbsp;&nbsp;应用的例子:</p>
<blockquote>
  <p><span class="cmd">wenv (set a=1 ; set b=2 ; set c=3)</span></p>
  <p><span class="cmd">wenv for /l %i in (1,1,5) do (set a=%i ; echo %i)</span></p>
</blockquote>
<h4>2、从内存中复制字符串 *ADDR$</h4>
<p>&nbsp;&nbsp;说明：程序执行时会从内存地址ADDR处复制一个字符串替换命令行的*ADDR$</p>
<p>&nbsp;&nbsp;例子：显示内存地址0x60000处的字符串信息</p>
<blockquote>
  <p><span class="cmd">wenv echo *0x60000$</span></p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;执行时先复制内存0x60000处的字符串到命令行替换后再执行。</p>
<h4>3、连续运行多条命令,命令与命令之间使用以下字符隔开。</h4>
<blockquote>
  <p><span class="Options">]]]</span> 无条件执行。</p>
  <p><span class="Options">]]&amp;</span>  当前一条命令返回真时执行后面的语句.否则直接返回。</p>
  <p><span class="Options">]]|</span> 当前一条命令返回假时执行后面的语句.否则直接返回。</p>
</blockquote>
<h4>4、内置几个鸭蛋，</h4>
<blockquote>
  <p>如变量值字符替换<span class="Options">!</span>、FOR循环控制命令<span class="Options">continue</span>/<span class="Options">break</span></p>
</blockquote>
<h3>十一、通用字符串处理(以下方法可以应用于任何地方)</h3>
<h4>1: ${VAR:X:Y}截取字符</h4>
<p>&nbsp;&nbsp;提取第X个字符后面的Y个字符,如果X为负数则从倒数第X个开始提取Y长度的字符；</p>
<p>&nbsp;&nbsp;如果Y的值为空则提取第X个字符后面的所有有字符；</p>
<p>&nbsp;&nbsp;如果Y的值为负数，则去掉倒数Y个字符；</p>
<blockquote>
  <p><span class="cmd">WENV set a=ABCDabcd1234</span><br>
    <span class="cmd">WENV set b=${a:4:4}</span> #得到b=abcd<br>
    <span class="cmd">WENV set b=${a:-8:4}</span> #得到b=abcd<br>
    <span class="cmd">WENV set b=${a:4:-4}</span> #得到b=abcd<br>
    <span class="cmd">WENV set b=${a:-8:-4}</span> #得到b=abcd</p>
</blockquote>
<h4>2: ${VAR#STRING}	删除STRING前面的字符.</h4>
<blockquote>
  <p><span class="cmd">WENV set a=ABCD;abcd;1234</span><br>
    <span class="cmd">WENV set b=${a#;}</span></p>
  <p>得到b=abcd;1234</p>
</blockquote>
<h4>3: ${VAR##STRING}	删除STRING前面的字符，贪婪模式</h4>
<blockquote>
  <p><span class="cmd">WENV set a=ABCD;abcd;1234</span><br>
    <span class="cmd">WENV set b=${a##;}</span></p>
  <p>得到b=1234</p>
</blockquote>
<h4>4: ${VAR%STRING}	删除STRING后面的字符.</h4>
<blockquote>
  <p><span class="cmd">WENV set a=ABCD;abcd;1234<br>
  </span><span class="cmd">WENV set b=${a%;}</span></p>
<p>得到b=ABCD;abcd</p>
</blockquote>
<h4>5: ${VAR%%STRING}	删除STRING后面的字符,贪婪模式</h4>
<blockquote>
  <p><span class="cmd">WENV set a=ABCD;abcd;1234</span><br>
    <span class="cmd">WENV set b=${a%%;}</span></p>
  <p>得到b=ABCD</p>
</blockquote>
<h4>6: 支持嵌套变量。</h4>
<p>&nbsp;&nbsp;像下面的例子：</p>
<blockquote>
  <p><span class="cmd">wenv echo ${${${a:0:1}:0:1}}</span></p>
</blockquote>
<h2>十二、一些应用举例：</h2>
<h4>1)根据提示从键盘输入，全转为大写后保存给srspath变量</h4>
<blockquote>
  <p><span class="cmd">WENV set srspath=$u,$input,please input SRS driver path:</span></p>
</blockquote>
<h4>2)设置变量a,并把值全转为大写</h4>
<blockquote>
  <p><span class="cmd">WENV set a=ABCDabcd1234</span><br>
    <span class="cmd">WENV set a=$u,${a}</span></p>
  <p>得到a=ABCDABCD1234</p>
</blockquote>
<h4>3)清除某个变量</h4>
<blockquote>
  <p><span class="cmd">WENV set a=</span></p>
  <p>=后为空，清除变量a</p>
</blockquote>
<h4>4)清除某些字符开头的所有变量</h4>
<blockquote>
  <p><span class="cmd">WENV reset a*</span> 清除a开头的所有变量</p>
  <p><span class="cmd">WENV reset sr*</span> 清除sr开头的所有变量</p>
</blockquote>
<h4>5)清除所有变量</h4>
<blockquote>
  <p><span class="cmd">WENV reset</span></p>
</blockquote>
<h4>6)显示所有变量信息(不包括内置变量)</h4>
<blockquote>
  <p><span class="cmd">WENV set</span></p>
</blockquote>
<h4>7)显示所有以prefix开头的变量</h4>
<blockquote>
  <p><span class="cmd">WENV set prefix</span></p>
</blockquote>
<h4>8)wenv call 的例子:</h4>
<p>如：</p>
<blockquote>
  <p class="bat">WENV set imgpath=/SRS_f6/srs_f6.IMG<br>
    WENV set imgpath=$u,${imgpath}<br>
    WENV call map --mem ${imgpath} (fd0)<br>
    map --hook</p>
</blockquote>
<h4> 9)可以动态执行命令，如：</h4>
<blockquote>
  <p class="bat">write (md)0x300+1 map --status\0<br>
    WENV call *0x60000$</p>
</blockquote>
<h4>10)wenv check 的例子:</h4>
<p>如：</p>
<blockquote>
  <p class="bat">WENV set a=abc<br>
    WENV check ${a}==abc &amp;&amp; echo ${a}=abc<br>
    WENV calc a=123<br>
    WENV check ${a}==123 &amp;&amp; echo ${a}=123<br>
    WENV check ${a}&lt;=150 check ${a}&gt;=100 &amp;&amp; echo ${a}&gt;=100.and.${a}&lt;=150</p>
</blockquote>
<p>上面实现了IF语句功能.</p>
</body>
</html>
